]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 months agompris: Do not send player-removed for a player that has never been added
Marco Trevisan (Treviño) [Thu, 16 Apr 2026 16:38:22 +0000 (18:38 +0200)]
mpris: Do not send player-removed for a player that has never been added

We only emit player-added for players that can play, but we remove them
all, despite this state.

This causes a non-fatal warning during the removal of a non-existent
notification (that is in fact an undefined message)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/8284
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4183>

6 months agompris: Only expose the players that can play
Marco Trevisan (Treviño) [Thu, 16 Apr 2026 16:35:57 +0000 (18:35 +0200)]
mpris: Only expose the players that can play

In mpris we only emit "player-added" for players that can actually play,
but during NotificationBox and MessageList initialization we add them all,
including those not having being technically added.

And this may be a problem when locking the screen, since we do not want
players to show if they cannot play.

So, be consistent and expose publicly only the players that can play

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4183>

6 months agoFollowup to previous commit
Andre Klapper [Thu, 16 Apr 2026 05:29:24 +0000 (07:29 +0200)]
Followup to previous commit

6 months agoRevert wrong German translations
Andre Klapper [Thu, 16 Apr 2026 05:24:48 +0000 (07:24 +0200)]
Revert wrong German translations

See https://gitlab.gnome.org/Teams/Translation/de/-/issues/88

Introduced in e83286fc

6 months agodash: Disconnect overview signals on destroy
fthx [Mon, 16 Feb 2026 09:41:58 +0000 (09:41 +0000)]
dash: Disconnect overview signals on destroy

While we never destroy the dash ourselves, extensions that replace it
might, so better disconnect the signals properly instead of leaking
the handlers in that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4077>

6 months agoscreenshot: Snap cursor to the center of the handle on press
Ramez Medhat [Sat, 28 Mar 2026 15:14:15 +0000 (17:14 +0200)]
screenshot: Snap cursor to the center of the handle on press

When dragging the screenshot area handle from the outer sides, it is
currently impossible to move them to the edges or corners of the screen,
as the cursor is constrained to the monitor.

Fix this by snapping the cursor to the center of the handle when starting
the resize operation.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9113
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4158>

6 months agoInstall all properties at once
Bilal Elmoussaoui [Tue, 14 Apr 2026 19:31:26 +0000 (21:31 +0200)]
Install all properties at once

As we already use a static array of GParamSpecs, so continue using that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agost/button: Prefer notify_by_pspec where possible
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:49:07 +0000 (19:49 +0200)]
st/button: Prefer notify_by_pspec where possible

Avoids the property by name lookup

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoPrefer g_steal_pointer where possible
Bilal Elmoussaoui [Wed, 15 Apr 2026 07:37:00 +0000 (09:37 +0200)]
Prefer g_steal_pointer where possible

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoPrefer g_string_free_and_steal instead of g_string_free
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:43:21 +0000 (19:43 +0200)]
Prefer g_string_free_and_steal instead of g_string_free

As that makes semantics clearer

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoPrefer using g_clear_handle_id
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:42:04 +0000 (19:42 +0200)]
Prefer using g_clear_handle_id

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoAlways initialize GError as NULL
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:41:16 +0000 (19:41 +0200)]
Always initialize GError as NULL

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agocroco: Remove unnecessary NULL checks
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:39:48 +0000 (19:39 +0200)]
croco: Remove unnecessary NULL checks

As g_free is NULL safe anyways

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoUse g_clear_list macros
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:37:51 +0000 (19:37 +0200)]
Use g_clear_list macros

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agocroco: Prefer using g_clear_* macros
Bilal Elmoussaoui [Wed, 15 Apr 2026 07:31:20 +0000 (09:31 +0200)]
croco: Prefer using g_clear_* macros

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoAdd G_PARAM_STATIC_NAME to all properties
Bilal Elmoussaoui [Wed, 15 Apr 2026 07:30:17 +0000 (09:30 +0200)]
Add G_PARAM_STATIC_NAME to all properties

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoPrefer using G_SOURCE_* constants instead of TRUE/FALSE
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:30:23 +0000 (19:30 +0200)]
Prefer using G_SOURCE_* constants instead of TRUE/FALSE

Makes the semantics clearer.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agost/image-content: Chain-up constructed
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:29:01 +0000 (19:29 +0200)]
st/image-content: Chain-up constructed

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agocroco: Remove functions declarations only
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:27:29 +0000 (19:27 +0200)]
croco: Remove functions declarations only

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoAlways set a source tag on GTasks
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:26:10 +0000 (19:26 +0200)]
Always set a source tag on GTasks

Helps with debugging/profiling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agokeyring/prompt: Use g_value_set_static_string
Bilal Elmoussaoui [Tue, 14 Apr 2026 17:25:11 +0000 (19:25 +0200)]
keyring/prompt: Use g_value_set_static_string

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4176>

6 months agoBump version to 50.1
Florian Müllner [Tue, 14 Apr 2026 13:42:49 +0000 (15:42 +0200)]
Bump version to 50.1

Update NEWS.

6 months agoappDisplay: Go to item page for items dropped on page indicators
Mohamed Abdulla [Wed, 25 Mar 2026 18:42:33 +0000 (21:42 +0300)]
appDisplay: Go to item page for items dropped on page indicators

The page could be full so the item is dropped on the page after it instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4153>

6 months agoiconGrid: Exclude Lower Out of Bound in IconGridLayout getDropTarget()
Mohamed Abdulla [Mon, 23 Mar 2026 20:57:22 +0000 (23:57 +0300)]
iconGrid: Exclude Lower Out of Bound in IconGridLayout getDropTarget()

Exclude negative page values as well. They are possible in case of
dropping on the left-side of an app folder.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7700
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4153>

6 months agosignalTracker: Add debug function to get all signal trackers
Sebastian Keller [Sat, 11 Apr 2026 13:43:05 +0000 (15:43 +0200)]
signalTracker: Add debug function to get all signal trackers

Signal trackers have been the source of difficult to identify leaks in
the past. Having access to the list of all active signal trackers at run
time without having to modify and rebuild gnome-shell can be very
valuable in identifying the source of these leaks, especially since the
steps required to trigger a leak might not always be obvious.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6423
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4169>

6 months agoenvironment: Disconnect from transitions when stopped
Sebastian Keller [Sat, 11 Apr 2026 13:02:12 +0000 (15:02 +0200)]
environment: Disconnect from transitions when stopped

Transitions don't emit a 'destroy' signal which would be used by the
SignalTracker to automatically clean up, leading to all transitions
being leaked until session shutdown.

Avoid this by manually disconnecting them when stopped.

Fixes: 240aa910d ("environment: Ignore animation events after shutdown")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4168>

6 months agostatus/keyboard: Send activation token when launching Tecla
Sebastian Keller [Fri, 10 Apr 2026 20:26:53 +0000 (22:26 +0200)]
status/keyboard: Send activation token when launching Tecla

This ensures the window will be correctly focused, even when using
strict focus mode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4165>

6 months agoUpdate Slovak translation
Jose Riha [Fri, 10 Apr 2026 11:49:05 +0000 (11:49 +0000)]
Update Slovak translation

6 months agoportalHelper: Add basic zoom support
Florian Müllner [Tue, 31 Mar 2026 16:21:58 +0000 (18:21 +0200)]
portalHelper: Add basic zoom support

A portal login page may have poor readability that require page zoom
functionality as implemented by most browsers.

However WebView does not provide this functionality itself, it only
exposes API that allows implementing it.

Add basic zoom in/out/reset actions based on epiphany's implementation,
and hook them up to accels.

Exposing them more prominently (as buttons or in a menu) would require
some UI rework, so leave that for a later.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9129
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4159>

6 months agoportalHelper: Set up accels from app
Florian Müllner [Tue, 31 Mar 2026 19:39:05 +0000 (21:39 +0200)]
portalHelper: Set up accels from app

Setting up accels is an app action, so doing it from the app is
a more natural place than repeating it for each window (even if
the common case is a single window for the entire process lifetime).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4159>

7 months agosessionMode: Enable the networkAgent within the unlock-dialog
Mitchell Augustin [Mon, 6 Apr 2026 22:05:58 +0000 (17:05 -0500)]
sessionMode: Enable the networkAgent within the unlock-dialog

This ensures that selecting a password-protected
Wi-Fi network in quicksettings behaves the same
on both the initial gdm screen (before any user
has logged in, as enabled already in 4440a8210b456923678facd434ef8a23d48f63b6)
and when the screen has been locked by an already logged-in user.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4160>

7 months agoRemove functions with declaration-only
Bilal Elmoussaoui [Wed, 8 Apr 2026 12:06:37 +0000 (14:06 +0200)]
Remove functions with declaration-only

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4162>

7 months agotests: Don't check value before calling g_free
Bilal Elmoussaoui [Wed, 8 Apr 2026 12:02:44 +0000 (14:02 +0200)]
tests: Don't check value before calling g_free

It is NULL safe anyways.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4162>

7 months agoUse g_set_str where possible
Bilal Elmoussaoui [Wed, 8 Apr 2026 12:00:03 +0000 (14:00 +0200)]
Use g_set_str where possible

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4162>

7 months agoPrefer using g_clear_object/g_clear_pointer macro where possible
Bilal Elmoussaoui [Wed, 8 Apr 2026 11:53:04 +0000 (13:53 +0200)]
Prefer using g_clear_object/g_clear_pointer macro where possible

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4162>

7 months agoUpdate Catalan translation
Jordi Mas [Fri, 3 Apr 2026 13:14:11 +0000 (15:14 +0200)]
Update Catalan translation

7 months agost/texture-cache: Add missing error reporting
Jonas Ådahl [Mon, 23 Mar 2026 12:26:51 +0000 (13:26 +0100)]
st/texture-cache: Add missing error reporting

st_texture_cache_load_file_sync_to_cogl_texture() loads a file into a
texture, but if pixbuf_to_st_content_image() failed, it'd return that it
failed, but wouldn't set an error, which would cause a null pointer
dereference when attempting to log the error message in the caller. Fix
this by setting an error on all error paths.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9130
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4150>

7 months agoUpdate Japanese translation
Ryo Nakano [Sat, 28 Mar 2026 14:04:13 +0000 (14:04 +0000)]
Update Japanese translation

7 months agoUpdate Polish translation
Victoria Niedzielska [Fri, 27 Mar 2026 08:56:12 +0000 (08:56 +0000)]
Update Polish translation

7 months agokeyboard: Ensure minimum height of the OSK always fits on screen
Sebastian Keller [Thu, 26 Mar 2026 18:29:44 +0000 (19:29 +0100)]
keyboard: Ensure minimum height of the OSK always fits on screen

At very low resolutions, 1/3 of the screen height might not be enough
for the minimum height of the OSK, causing some keys to get pushed out
of the screen. This now ensures the height is always at least the
minimum height, but only up to 1/2 of the screen to avoid situations
where the OSK would cover the whole screen preventing any other
interaction.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9126
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4156>

7 months agoreadme: Fix punctuation
rayjonesjay [Thu, 26 Mar 2026 09:35:17 +0000 (12:35 +0300)]
readme: Fix punctuation

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4155>

7 months agoUpdate Romanian translation
Antonio Marin [Wed, 25 Mar 2026 09:24:17 +0000 (09:24 +0000)]
Update Romanian translation

7 months agoeditorconfig: Shell scripts are indented by 2 spaces
Peter Hutterer [Tue, 24 Mar 2026 00:48:35 +0000 (10:48 +1000)]
editorconfig: Shell scripts are indented by 2 spaces

Well, most of them anyway, fix the two that were 4-space indented.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4152>

7 months agotools/toolbox: Ignore missing config files
Peter Hutterer [Tue, 24 Mar 2026 00:37:36 +0000 (10:37 +1000)]
tools/toolbox: Ignore missing config files

The config file is created by our own create-toolbox.sh script which
sets the DEFAULT_TOOLBOX name. But for toolboxes created directly
that file doesn't exist, so let's skip over that (and thus require
the toolbox name to be given on the commandline or via an env var).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4152>

7 months agoquickSettings: Consider menu width when calculating its preferred height
Sebastian Keller [Tue, 17 Mar 2026 03:21:09 +0000 (04:21 +0100)]
quickSettings: Consider menu width when calculating its preferred height

Previously the width of a menu was ignored when calculating its
preferred height. This was leading to line wrapped text never being
wrapped in these calculations and thus the menu being assumed to be
shorter than it actually ends up when allocated with line wrapping.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6952
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4136>

7 months agoquickSettings: Adjust menu width using contraints instead of CSS
Sebastian Keller [Tue, 17 Mar 2026 01:51:44 +0000 (02:51 +0100)]
quickSettings: Adjust menu width using contraints instead of CSS

The width of the overlay actor for quick settings menus was as wide as
the whole box pointer and the menus placed inside the overlay actor were
then adjusted with CSS margins to have the same width and spacing as the
other elements.

This meant that in `QuickSettingsLayout` the width of the overlay actor
would have to be dependent on the size of a parent actor rather than the
associated container. In the next commit we are however going to need to
use the correct width, so this commit changes the width of the overlay
actor to be the same as other actors in the grid.

This also avoids the need to use CSS to adjust the width and horizontal
placement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4136>

7 months agoci: Stop building malcontent
Florian Müllner [Mon, 23 Mar 2026 22:26:35 +0000 (23:26 +0100)]
ci: Stop building malcontent

After updating the image to F44, the malcontent version is
already recent enough for parental controls support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4151>

7 months agoci: Update mutter image
Florian Müllner [Sun, 22 Mar 2026 12:46:37 +0000 (13:46 +0100)]
ci: Update mutter image

The mutter image has been rebased to F44, pick it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4148>

7 months agoUpdate Cornish translation
Flynn Peck [Mon, 23 Mar 2026 13:18:14 +0000 (13:18 +0000)]
Update Cornish translation

7 months agost/viewport: Include padding in paint volume origin calculation
Sebastian Keller [Sat, 21 Mar 2026 22:38:16 +0000 (23:38 +0100)]
st/viewport: Include padding in paint volume origin calculation

In the presence of adjustments, the paint volume had its size adjusted
for the padding of the viewport, but not its origin. This was leading to
scrollable viewports with a padding having their paint volumes shifted
too far to the left causing some artifacts on the right when scrolling.

One place where this could be observed was the window list in looking
glass.

This now correctly adjusts the origin, simplifies the code and moves it
into the only condition where the adjustment is needed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4146>

7 months agoshell: Fix overcounting of misc. symbols for password strength
DaPigGuy [Fri, 20 Mar 2026 01:48:13 +0000 (18:48 -0700)]
shell: Fix overcounting of misc. symbols for password strength

There was previously a branch for lowercase symbols that was removed.
Lowercase symbols should not count as miscellaneous symbols, which
increase the password strength.

Fixes ecb7dcc5d67c33d2d5155ecfc32fc36a7e4cfa08

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4143>

7 months agoshell: Remove set-but-unused variable
Florian Müllner [Fri, 20 Mar 2026 00:16:56 +0000 (01:16 +0100)]
shell: Remove set-but-unused variable

The variable is set, but never read. Indeed, it does not exist
in the original Firefox code the method is based on.

Remove it to shut up a new gcc warning (-Wunused-but-set-variable).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4142>

7 months agocroco: Remove set-but-unused variables
Florian Müllner [Thu, 19 Mar 2026 21:41:13 +0000 (22:41 +0100)]
croco: Remove set-but-unused variables

Theses variables are set, but never read. That's not very useful,
and gcc now warns about them by default (-Wunused-but-set-variable).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4141>

7 months agolightbox: Use triangular noise shape for dithering
Michel Dänzer [Tue, 17 Mar 2026 17:01:20 +0000 (18:01 +0100)]
lightbox: Use triangular noise shape for dithering

Highest density at 0.0, dropping off towards ±1.0.

This makes the dithering noise slightly less noticeable in the dark
corners of the vignette effect.

The algorithm is taken from listing 1 of the Dithering section on
https://momentsingraphics.de/BlueNoise.html .

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4137>

7 months agoConstify results from stdlib functions
Daniel van Vugt [Thu, 19 Mar 2026 07:33:54 +0000 (15:33 +0800)]
Constify results from stdlib functions

This fixes recent warnings:

../src/st/croco/cr-rgb.c: In function ‘cr_rgb_set_from_name’:
../src/st/croco/cr-rgb.c:405:16: warning: assignment discards ‘const’
qualifier from pointer target type [-Wdiscarded-qualifiers]
  405 |         result = bsearch (a_color_name,
      |                ^
[150/294] Compiling C object src/libshell-18.so.p/shell-util.c.o
../src/shell-util.c: In function ‘shell_util_translate_time_string’:
../src/shell-util.c:165:7: warning: assignment discards ‘const’
qualifier from pointer target type [-Wdiscarded-qualifiers]
  165 |   sep = strchr (str, '\004');
      |       ^

which seem to originate from:

https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=cd748a63ab1a7ae846175c532a3daab341c62690;hp=64b6813338d836ad1b61969a153192fb739f8722

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4139>

7 months agoUpdate Cornish translation
Flynn Peck [Tue, 17 Mar 2026 21:53:36 +0000 (21:53 +0000)]
Update Cornish translation

7 months agoUpdate Serbian translation
Марко Костић [Tue, 17 Mar 2026 12:11:14 +0000 (12:11 +0000)]
Update Serbian translation

7 months agoBump version to 50.0
Florian Müllner [Sat, 14 Mar 2026 17:01:56 +0000 (18:01 +0100)]
Bump version to 50.0

Update NEWS.

7 months agoUpdate German translation
Christian Kirbach [Sun, 15 Mar 2026 10:48:37 +0000 (10:48 +0000)]
Update German translation

7 months agooverview: Fix delayed grab when entering via gesture
Florian Müllner [Sat, 14 Mar 2026 18:42:18 +0000 (19:42 +0100)]
overview: Fix delayed grab when entering via gesture

When showing the overview in response to a gesture update, we
set the corresponding overview properties first before syncing
the grab.

However as we don't sync the grab while the overview is animating,
we currently end up only taking the grab once the animation is complete.

This is unintentional and messes with the expected keyboard focus,
so only mark the animation as in progress after syncing the grab.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8967
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4128>

7 months agostatus/keyboard: Preserve MRU order while IBus is disabled
Maksim Mazko [Mon, 2 Mar 2026 17:44:56 +0000 (20:44 +0300)]
status/keyboard: Preserve MRU order while IBus is disabled

In password fields, IBus sources are temporarily disabled and a backup
of the MRU list is created. If the user switches layouts in that state,
the active MRU list is updated, but the backup is not.

When IBus is enabled again, the stale backup is restored and the order
the user just selected is lost. Sync the backup on interactive source
switches while IBus is disabled, so the MRU order stays consistent.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8538
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4101>

7 months agostatus/keyboard: Simplify MRU list updates
Maksim Mazko [Fri, 6 Mar 2026 13:20:10 +0000 (16:20 +0300)]
status/keyboard: Simplify MRU list updates

Rewrite the update logic to a more direct form, improving readability by
removing the manual iteration and list manipulation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4101>

7 months agoboxpointer: Properly update arrow side when requested
Florian Müllner [Thu, 12 Mar 2026 10:32:40 +0000 (11:32 +0100)]
boxpointer: Properly update arrow side when requested

Boxpointer tracks both the "user arrow side", which is the side
that was explicitly specified, and the "arrow side", which is the
actual side that may have been flipped due to space constraints.

However the former currently always keeps tracking the side that
was specified at construction time, even if it is explicitly
changed with `updateArrowSide()`.

That means that on allocation, the arrow side is reverted to its
original value again, unless the flip calculation happens to turn
it into the intended value.

This is unexpected, so update both current and intended arrow side
when updating the arrow side.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4120>

7 months agoboxpointer: Queue relayout after updating arrow side
Florian Müllner [Fri, 13 Mar 2026 11:47:48 +0000 (12:47 +0100)]
boxpointer: Queue relayout after updating arrow side

We currently queue a repaint after setting a new arrow side, but
that seems insufficient - moving the arrow from top/bottom to the
left/right for example may very well affect the layout, plus the
arrow may need flipping due to size constraints (which happens
on allocation).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4120>

7 months agosystemActions: Fix initial visibility of logout action
Sebastian Keller [Fri, 13 Mar 2026 00:27:29 +0000 (01:27 +0100)]
systemActions: Fix initial visibility of logout action

When `_updateLogout()` is called on login, the AccountsService user
might not have been loaded yet. This would have resulted in all values
being null/false, including `local_account`. Since `!localAccount` is
one of the cases where the action is available, this would have wrongly
resulted in the item being shown when not intended to be shown. But only
until something triggers another call of `_updateLogout()`, such as
locking/unlocking the session.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9100
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4121>

7 months agodata: Re-add old Passwords and Keys desktop name
Daniel Rusek [Thu, 12 Mar 2026 10:34:26 +0000 (10:34 +0000)]
data: Re-add old Passwords and Keys desktop name

Seahorse desktop file name was changed in upstream, but the new release
was delayed. This caused Seahorse to be outside the Utilities folder in
newer distributions, which is not correct.

The new Seahorse version should be out soon, so reverting the new name
is not a good idea. Instead, the old name should be added back.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4119>

7 months agomain: Also respect --force-animations flag in remote sessions
Florian Müllner [Wed, 11 Mar 2026 21:37:20 +0000 (22:37 +0100)]
main: Also respect --force-animations flag in remote sessions

When commit 33d3a6564 added support for the --force-animations flag,
it explicitly excluded remote sessions.

There has been some interest in enabling the flag for remote sessions
as well recently, and as nobody seems to remember why they were
excluded, do just that.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9099
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4118>

7 months agoappDisplay: Fix focus path when edit is enabled
Sergio Costas Rodriguez [Tue, 10 Mar 2026 11:52:39 +0000 (12:52 +0100)]
appDisplay: Fix focus path when edit is enabled

When an app folder is open and its panel is shown, there are
three main elements: the folder name, the list of apps, and the
Edit togglebutton. By default, the user can use TAB to jump
between the app icons and the Edit togglebutton, but when the
togglebutton is checked, the folder name becomes editable and
the focus jumps to it.

Unfortunately, if the user goes out of the editable name with
TAB, the focus only cycles between the Edit togglebutton and
the app icons, never landing over the editable folder name (which
remains editable until the Edit togglebutton is unchecked).

This patch fixed this, making the editable folder name focusable
when using TAB, as expected, when the Edit togglebutton is
checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4116>

7 months agoUpdate Danish translation
Ask Hjorth Larsen [Mon, 9 Mar 2026 23:10:53 +0000 (23:10 +0000)]
Update Danish translation

8 months agoUpdate British English translation
Bruce Cowan [Sun, 8 Mar 2026 16:58:41 +0000 (16:58 +0000)]
Update British English translation

8 months agoUpdate Polish translation
Victoria [Sun, 8 Mar 2026 11:22:27 +0000 (11:22 +0000)]
Update Polish translation

8 months agoappDisplay: Fix accessibility for application folders
Sergio Costas Rodriguez [Wed, 4 Mar 2026 11:35:52 +0000 (12:35 +0100)]
appDisplay: Fix accessibility for application folders

Currently, application folders have a `checkbutton` role, which
is confusing for the user because it's not something that
changes its checked status, but a button that opens the contents
of the folder. Also, the only indication that this is a folder
and not a "normal" application is that role, which means that an
user must know that pushbuttons are applications and checkbuttons
are folders, which is confusing.

This patch fixes this by adding the "expandable" accessible
state to the folder button, thus notifying the user that it is
an element with extra elements inside.

It also adds the folder name and the type as the full container
label when opening a folder, thus ensuring that the user knows
where they are.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4109>

8 months agoappDisplay: Stop using toggle-mode with folder icons
Florian Müllner [Thu, 5 Mar 2026 15:22:41 +0000 (16:22 +0100)]
appDisplay: Stop using toggle-mode with folder icons

This is essentially a left-over from the original folder design, dating
all the way back to commit 6e3e2d9 in 2013.

It no longer makes much sense with the current design iteration, where
we pretend that the icon pops out of the grid and becomes the dialog
(i.e. we hide the icon and zoom out the dialog from its position).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4114>

8 months agomessageTray: Avoid notification double destruction after activation
Sebastian Keller [Thu, 5 Mar 2026 12:04:37 +0000 (13:04 +0100)]
messageTray: Avoid notification double destruction after activation

The activation handler of a notification may indirectly have already
destroyed it before `activate()` continues and tries to destroy it.

This happened for example in the `FdoNotificationDaemon` activation
handler when no default actions are specified, which ends up calling
`destroyNonResidentNotifications()`.

Another case where this could happen is the `WindowAttentionHandler`
which activates the window and upon activation of the window destroys
the entire notification source, which also destroys the notification.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5421
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4113>

8 months agoBump version to 50.rc
Florian Müllner [Tue, 3 Mar 2026 13:12:08 +0000 (14:12 +0100)]
Bump version to 50.rc

Update NEWS.

8 months agobuild: Bump gjs requirement
Florian Müllner [Tue, 3 Mar 2026 13:09:44 +0000 (14:09 +0100)]
build: Bump gjs requirement

We started using the one-shot idle/timeout functions[0] that gjs
added this cycle, so depend on a recent enough version.

[0] https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3947

8 months agolayout: Wait for backgrounds to load, even when interrupted
Florian Müllner [Thu, 12 Feb 2026 12:50:47 +0000 (13:50 +0100)]
layout: Wait for backgrounds to load, even when interrupted

We no longer get stuck when a background manager is destroyed during
the startup animation, but we now resolve before the new backgrounds
have been loaded.

Address this by keeping the returned promise around until it is fulfilled,
and only resolve it after backgrounds were loaded successfully.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4070>

8 months agolayout: Reject promise if background loading is interrupted
Florian Müllner [Tue, 10 Feb 2026 14:30:46 +0000 (15:30 +0100)]
layout: Reject promise if background loading is interrupted

Currently if a background manager is destroyed while we are waiting
for the background to load, the corresponding promise never resolves.

To prevent this from happening (and the startup animation getting
stuck as a result), guard the loading operation with a cancellable
and reject the promise when it is cancelled.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9018
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4070>

8 months agolayout: Catch async errors
Florian Müllner [Thu, 12 Feb 2026 13:48:36 +0000 (14:48 +0100)]
layout: Catch async errors

It is good practice to avoid "unhandled promise rejection" errors,
even when a function is not expected to reject.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4070>

8 months agosystemActions: Call into gnome-session for suspend
Adrian Vovk [Fri, 27 Feb 2026 21:21:46 +0000 (16:21 -0500)]
systemActions: Call into gnome-session for suspend

gnome-shell previously talked to logind directly on its own. This,
however, will lead to code duplication: the various inhibitor handling
bugfixes I've made to gnome-session (i.e. handling the new return values
from CanPowerOff/CanReboot/CanSuspend) would have to be copied into
gnome-shell. So instead, this commit just moves the responsibility for
handling suspend into gnome-session.

There's a corresponding change in gnome-session

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4040>

8 months agosystemActions: Separate CanReboot from CanShutdown
Adrian Vovk [Tue, 20 Jan 2026 05:04:57 +0000 (00:04 -0500)]
systemActions: Separate CanReboot from CanShutdown

The reboot actions and shutdown actions are independent, and might have
independent availability. It's perfectly valid for a system
administrator to configure a system where one action is available and
the other isn't. This commit separates the availability of these
actions, and allows them to be independently shown/hidden

There's a corresponding change in gnome-session

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4040>

8 months agosystemActions: Switch to updated CanShutdown() API
Adrian Vovk [Fri, 27 Feb 2026 20:58:17 +0000 (15:58 -0500)]
systemActions: Switch to updated CanShutdown() API

There's corresponding changes in gnome-session that report more detail
about the availability of the action. This allows gnome-shell to
appropriately hide the action whenever it is inhibited, and would lead
to a Polkit prompt.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4040>

8 months agoendSessionDialog: Immediately return from Open()
Adrian Vovk [Tue, 20 Jan 2026 05:09:29 +0000 (00:09 -0500)]
endSessionDialog: Immediately return from Open()

There's no need to wait for the dialog to finish fading in before we can
return from Open().

The code, as it was before, would break dialog updates: the dialog was
already open, so the signal would never get emitted, so the method would
never return, and so gnome-session would remain blocked waiting for a
return value that will never come.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4040>

8 months agoshell/app-usage: Fix app usages hash table leak on shutdown
Sebastian Keller [Sun, 1 Mar 2026 23:50:09 +0000 (00:50 +0100)]
shell/app-usage: Fix app usages hash table leak on shutdown

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4098>

8 months agoshell/global: Remove repaint funcs on shutdown
Sebastian Keller [Sun, 1 Mar 2026 23:46:56 +0000 (00:46 +0100)]
shell/global: Remove repaint funcs on shutdown

This fixes a small leak caused by those functions remaining in the
`ClutterContext` `repaint_funcs` list otherwise.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4098>

8 months agost/entry: Fix clutter action leak when unsetting icon
Sebastian Keller [Sun, 1 Mar 2026 01:37:51 +0000 (02:37 +0100)]
st/entry: Fix clutter action leak when unsetting icon

The name of the removed action did not match the added one anymore,
effectively "leaking" an action whenever an icon was shown and hidden.
This was primarily affecting the clear button in the shell search.

Fixes: 0bf49afda ("Replace ClutterClickAction with new ClutterClickGesture")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4095>

8 months agost/entry: Fix primary/secondary icon leak
Sebastian Keller [Sat, 28 Feb 2026 21:26:15 +0000 (22:26 +0100)]
st/entry: Fix primary/secondary icon leak

_st_entry_set_icon() takes a ref when setting the primary/secondary
icon, but the ref is not removed when unsetting the icon or the entry is
destroyed.

Since clutter_actor_add_child() already adds a ref to the icon, there is
actually no need to manually add another ref. So stop doing that to fix
this leak.

This however also requires that StPasswordEntry takes ownership of its
own icon that it may set or unset multiple times. Since it is initially
floating we need to sink the ref for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4095>

8 months agoUpdate Portuguese translation
Hugo Carvalho [Sat, 28 Feb 2026 22:58:17 +0000 (22:58 +0000)]
Update Portuguese translation

8 months agoUpdate Japanese translation
小山田 純 - Oyamada Jun [Sat, 28 Feb 2026 03:59:28 +0000 (03:59 +0000)]
Update Japanese translation

8 months agoPass NULL as color state when capturing stage
Jonas Ådahl [Wed, 25 Feb 2026 20:19:57 +0000 (21:19 +0100)]
Pass NULL as color state when capturing stage

NULL means the default color state of the stage will be used, which is
what happened before.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4090>

8 months agoci: Bump mutter CI image version to include PipeWire 1.6.0
Jonas Ådahl [Wed, 25 Feb 2026 21:33:15 +0000 (22:33 +0100)]
ci: Bump mutter CI image version to include PipeWire 1.6.0

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4090>

8 months agoworkspaceAnimation: Assign movingWindow before creating window actors
Sebastian Keller [Fri, 27 Feb 2026 12:22:37 +0000 (13:22 +0100)]
workspaceAnimation: Assign movingWindow before creating window actors

The BaseWorkspaceGroup constructor calls _createWindows(), which uses
_shouldShowWindow() to determine which actors to create for the
animation.

In WorkspaceGroup _shouldShowWindow() this depends on a comparison with
this._movingWindow, which however only gets set after the
BaseWorkspaceGroup constructor has been called.

This was causing the moving window to no longer stick to the screen
when moved between workspaces.

Fixes: 96be47933 ("workspaceAnimation: Split out BaseWorkspaceGroup")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8992
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4092>

8 months agoUpdate Korean translation
Changwoo Ryu [Fri, 27 Feb 2026 00:23:17 +0000 (00:23 +0000)]
Update Korean translation

8 months agoappDisplay: Refresh folder preview when favorites change
Shivam [Sat, 21 Feb 2026 12:22:35 +0000 (17:52 +0530)]
appDisplay: Refresh folder preview when favorites change

Pinning an app from inside a folder did not refresh the
folder preview. FolderIcon._sync() was only listening
to folder GSettings changes, while pinning updates the
favorites setting instead.

As a result, _sync() was never called and the preview
could show stale icons or remain visible when the folder
became empty.

Fix this by also connecting _sync() to
AppFavorites::changed, ensuring the folder preview
updates correctly when favorites are modified.

Closes : https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9026

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4088>

8 months agoenvironment: Use replaceAll()
Alessandro Bono [Fri, 20 Feb 2026 22:57:14 +0000 (23:57 +0100)]
environment: Use replaceAll()

The replace() function expects two parameters, likely the third one
was ignored. Use replaceAll() to replace all the occurrences, not
just the first one.

Fixes: 007b6ca2e ("environment: Add convenience method for implicit animations")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>

8 months agolookingGlass: Use replaceAll()
Alessandro Bono [Fri, 20 Feb 2026 22:56:17 +0000 (23:56 +0100)]
lookingGlass: Use replaceAll()

Remove all the newlines occurrences, not just the first one.

Fixes: 52ae75d4b ("LookingGlass - JavaScript prompt and interactive Clutter controller")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>

8 months agopageIndicators: Remove double assignment
Alessandro Bono [Fri, 20 Feb 2026 22:12:50 +0000 (23:12 +0100)]
pageIndicators: Remove double assignment

The same one is just one line above.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>

8 months agosessionMode: Fix modeName extraction
Alessandro Bono [Fri, 20 Feb 2026 21:57:36 +0000 (22:57 +0100)]
sessionMode: Fix modeName extraction

The slice() function expects two numbers as parameters. Pass zero
in order to properly strip the suffix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>

8 months agoendSessionDialog: Fix invocation call
Alessandro Bono [Fri, 20 Feb 2026 21:48:08 +0000 (22:48 +0100)]
endSessionDialog: Fix invocation call

The function expects a domain, which was missing. Add it.

Fixes: 8f03eec3a ("endSessionDialog: Use registered D-Bus error")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>

8 months agoobjectManager: Remove unused function
Alessandro Bono [Fri, 20 Feb 2026 21:42:03 +0000 (22:42 +0100)]
objectManager: Remove unused function

Introduced with 4b450bab1164b9b1225702238e539201974a68b6, this function
has never been used. Furthermore it is wrong because objectPaths is not
indexed. Just drop it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4084>